JavaScript setTimeout 无法访问函数变量
全部标签 有没有办法根据GET请求的结果退出函数。例如,在下面的函数中,hi,如果GET的结果是data,其中data==='1',我要退出函数。functionhi(){$.ajax({url:"/shop/haveItem",type:"GET",success:function(data){if(data=='1'){//exithi()function}}});//someexecutablecodewhendataisnot'1'}我怎样才能做到这一点? 最佳答案 我认为解决方案可以是这样的functionhi(){$.ajax({
第一个问题varobj=function(){vara=0;this.b=0;}a和b的行为有什么不同吗?第二个问题varx='a';varf1=function(x){alert(x)}varf2=newFunction('alert('+x+')')f1和f2的行为有什么区别吗 最佳答案 问题一varobj=function(){vara=0;this.b=0;}在函数内,您将能够访问这两个变量,但在varx=newobj();...您将能够访问x.b,但不能访问x.a。问题2因为你的问题是在此刻写的,所以这是一个语法错误。以下
这更像是一种完整性检查。我发现在Javascript中使用闭包时,我经常使用以下模式从函数内部访问封闭类:MyClass.prototype.delayed_foo=function(){varself=this;setTimeout(function(){self.foo();//BeniceifIcoulduse'this'here},1000);};显然这工作得很好,而且使用起来也不是什么大麻烦。我脑子里有个小痒痒在说“你把事情搞得太复杂了,笨蛋!”这是普遍接受的模式吗? 最佳答案 这是普遍接受的模式,但通常使用that而不是
我很难理解这个函数。我不明白变量start在达到大于24的值26后如何恢复为16。functionfindSequence(goal){functionfind(start,history){if(start==goal)returnhistory;elseif(start>goal)returnnull;elsereturnfind(start+5,"("+history+"+5)")||find(start*3,"("+history+"*3)");}returnfind(1,"1");}print(findSequence(24));好的,看了一段时间后,我有几个问题可能会澄清一
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。在Firebug中测试我的网站时,单击菜单按钮时出现此错误:未捕获的异常:语法错误,无法识别的表达式:[href=schedule.html]我认为这里出错了,因为当前类不适用,但其余类工作正常。(这些不是完整代码)html:HOMESCHEDULEjs:$("nava").removeClass("current");$("nava[href="+newHash+"]").addClass("
我有一些jQuery代码,一次又一次地重复,我想通过将其转换为函数来减少我正在编写的代码。这是我正在使用的代码。$('form#save-userbutton[name="save-user"]').click(function(){varformData='option=saveuser&'+$('form#save-user').serialize();$.ajax({type:'POST',url:'process.php',data:formData,success:function(msg){if(msg==='empty'){alert('RequiredValuesMis
我有一个httpAPI(令人震惊的新技术)对设置不同响应状态的不同错误使用react。问题是——在将Ext.data.Store与一些XMLHttpRequest内部代理一起使用时,处理这种状态的最佳方法是什么?据我了解,“加载”事件不会直接传递状态,“异常”也是如此,最后一个实际上在收到4**状态时甚至不会触发。因此,正如我从代码中看到的那样,xhr实例隐藏在Ext.data.store中,因此问题也可以表述为“处理低级xhr对象的最佳extjs实践是什么”。 最佳答案 Ext.data.Store上没有异常事件。相反,是Ext.
好的,我已经包含了用于JqueryUI的googleapi库,如下所示:现在我有一个脚本可以更新一些跨度和文档幻灯片上的隐藏输入,而不仅仅是文档准备好:$(document).ready(function(){varslider=$('#slider_range').slider({range:true,min:0,max:5,step:1,values:[0,3],slide:function(event,ui){$('#level').val(ui.values[0]+'-'+ui.values[1]);$('#low').html(ui.values[0]);$('#high')
我知道这确实是基本的javascript,但出于某种原因,我似乎无法在传递参数时让我的链接的onclick函数起作用。我尝试转义引号,添加不同类型的引号并将原始变量添加为字符串。我让它在下面工作,但它说“XYZ未定义”functionrenderLink(value,meta,record){vartype=record.data['name'];//valueisXYZreturn'';}functiongetReport(type){alert(type);} 最佳答案 return'';您需要对字符串进行转义:return''
我用谷歌搜索了一下,但这个特殊问题与“我如何从字符串中评估函数名称”有点太相似了,所以我找不到解决方案,我想将字符串转换为一个函数所以说我有类似的东西:for(vari=0;i我要如何对foo进行类型转换才能调用someArray[0]();我需要函数中的值,有什么想法吗?编辑:我只是用“值(value)”代替了“我”,为混淆道歉更新:好的,我接受了icktoofay的回答,因为它有效,可以回答你的大部分问题和疑虑;我已经尝试了大多数建议的方法,所有这些方法要么没有将变量传递给调用位置范围,要么需要与最后一个函数变量值保持一致的闭包,不幸的是我无法控制其余代码所以我无法修改函数最终被调